At first, database systems were used almost exclusively for large volume data storage. Today, modern database systems help to create an environment of both rich programming capabilities and data storage functionality, including structured data storage functionality. Currently, a growing number of software applications use the structured data storage functionality of database systems. Thus, modern database systems have become a very attractive platform for application development. However, the use of modern database systems for application development also presents some problems.
One problem presented by the use of database systems for application development is the use of the database systems by illegitimate or unauthorized applications. For example, an application may use a database engine to store and manipulate data, such as documents or other data. In some cases, the database engine may not have all the capabilities of some database systems, but may be suitable as a substitute for many database systems. When the application is installed, the database engine is typically installed with the application. However, once installed, the database engine may be used by other applications for which a database usage license was not obtained. Although the application developer may have obtained a database usage license for the application, the other applications may effectively be able to use a database system at no cost. As a result, database vendors may lose revenue when unlicensed applications are permitted to use such database systems.
Another problem presented by the use of database systems is virus propagation or other problems that may be caused by malicious content in database systems. Database systems may be distributed to a large number of client installations and typically have no clear delineation between code and data stored in the database systems. For this reason, it is very difficult to implement a traditional virus scanner to search a database for malicious content or code.